Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

putil-waterfall

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

putil-waterfall

Simple, fast async waterfall NodeJs module for JavaScript

  • 2.1.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
418
increased by128.42%
Maintainers
1
Weekly downloads
 
Created
Source

putil-waterfall

NPM Version NPM Downloads Build Status Test Coverage Dependencies DevDependencies

Simple, fast async waterfall NodeJs module for ES6.

Runs an array of functions in series, each passing their results to the next in the array. However, if any of the functions pass an error to the callback, the next function is not executed and the main callback is immediately called with the error.

Installation

  • npm install putil-waterfall --save

Usage

waterfall(tasks, callback)

tasks: An array of functions to run.

callback: An optional callback to run once all the functions have completed. This will be passed the results of the last task's callback.

Each function calls callback(err, result1, result2, ...) to step through next function in array. Callback's first argument must be error or null. After than first argument values are moved to next functions. If error value is not null, waterfall skips next functions and calls result callback.

const waterfall = require('putil-waterfall');
waterfall([
  function(next) {
    console.log('started');
    next(null, 1, 2);
  },
  function(next, arg1, arg2) {
    let sum = arg1 + arg2;
    console.log('Current sum: ', sum);
    next(null, sum, 3, 4);
  },
  function(next, arg1, arg2, arg3) {
    let sum = arg1 + arg2 + arg3;
    console.log('Current sum: ', sum);
    // arg1 now equals 'three'
    next(null, sum + 10);
  }
], function(err, result) {
  if (err)
    console.error(err);
  else
    console.log('Result: ', result);
});

Result output

started
Current sum:  3
Current sum:  10
Result:  20

waterfall.every(array, fn, callback)

array: Any array

fn: Function to be called for every value. `fn(next, value, index)

callback: An optional callback to run once iteration completed.

const waterfall = require('putil-waterfall');
var total = 0;
waterfall.every([1, 2, 3, 4],
    function(next, val) {
      total += val;
      next(null);
    },
    function(err) {
      console.log('Total: ' + total);      
    });

Result output

Total: 10

Node Compatibility

  • node >= 4.0;

License

MIT

Keywords

FAQs

Package last updated on 26 Nov 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc